The following description relates to information management systems.
An information management system may include an information retrieval system and/or a database management system. An information management system can include a computer system and one or more databases, each of which is a collection of tables representing classes of physical or conceptual objects. Each object is represented by a record. The information contained in a record may be organized by multiple attributes. For example, if a database were used to keep track of employees in a corporation, each record might represent an employee and each record might include attributes such as a first name, last name, home address, and telephone number.
Relational database management systems are commonly employed to manage relational databases. A relational database is a database that includes one or more tables, where each table is organized by columns and rows. In such a database, each column is an attribute and each row is a record.
There are different ways to view the data in a database. One type of view is known as a multidimensional view. In a multidimensional view, each fact table has several dimensions such that each attribute of a table represents a dimension. Relational databases can be used to generate a multidimensional view of data. One use case for accessing data and performing operations on a database, when using a multidimensional view, is known as online analytical processing (OLAP). In accordance with OLAP, there are many database operations that manipulate data in response to a query, and many of these operations may need to aggregate data in order to generate a result. In relational databases, aggregating data is the process of summarizing a table by selecting columns and representing (e.g. by summing, averaging, or finding the maximum or minimum) the key figures for similar attribute values in each of the selected columns to generate a view with a “coarser granularity.” Aggregation may require a table scan. A table scan is the process of reading through a table record by record. Because aggregation may require access to many values in a database, aggregation can be a time and resource consumptive process. Also, because database operations may require a lot of memory, operations tend to have several accesses to a storage device of a computer system while performing the operation, rather than storing a table in a memory of the computer system.
In relational OLAP (ROLAP), the speed of aggregation queries may be increased by having frequently used aggregates precalculated and stored in the database. In multidimensional OLAP (MOLAP), the speed of aggregation queries may be increased by having all the aggregates precalculated and stored in special data structures. Precalculating aggregates tends to reduce response times for any queries that involve the precalculated aggregates; however, the ROLAP solution is advantageous only for those aggregates that are precalculated, and the MOLAP solution is computationally expensive.